package cn.iocoder.yudao.module.enterprise.controller.admin.enterpriseJob.vo;

import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
* 招聘职位 Base VO，提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
*/
@Data
public class EnterpriseJobBaseVO {

    @ApiModelProperty(value = "id")
    private Long id;

    @ApiModelProperty(value = "企业名称", required = true, example = "香港中文大学")
    @NotNull(message = "企业名称不能为空")
    private String companyName;

    @ApiModelProperty(value = "所属行业", required = true, example = "软件开发")
    @NotNull(message = "所属行业不能为空")
    private String industry;

    @ApiModelProperty(value = "城市", required = true, example = "上海")
    @NotNull(message = "城市不能为空")
    private String city;

    @ApiModelProperty(value = "职位名称", required = true, example = "Java技术专家")
    @NotNull(message = "职位名称不能为空")
    private String jobName;

    @ApiModelProperty(value = "薪资类型", required = true, example = "monthly_salary")
    @NotNull(message = "薪资类型不能为空")
    private String salaryUnit;

    @ApiModelProperty(value = "学历要求", required = true, example = "本科")
    @NotNull(message = "学历要求不能为空")
    private String education;

    @ApiModelProperty(value = "工作地址", required = true, example = "广东省深圳市")
    @NotNull(message = "工作地址不能为空")
    private String workAddress;

    @ApiModelProperty(value = "职位状态 未发布0 未审核1 已审核2 已发布3 （上架） 暂停发布（下架）4 ", example = "0")
    private String status;

    @ApiModelProperty(value = "职位点击量", example = "1524")
    @NotNull(message = "职位点击量不能为空")
    private Integer clickCount;

    @ApiModelProperty(value = "职位投递量", example = "5")
    private Integer postCount;

    @ApiModelProperty(value = "置顶状态")
    private String topStatus;

    @ApiModelProperty(value = "发布时间", example = "2022-04-28")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date publishTime;

    private String updater;

    private String creator;

    private String department;

    private String operation;

    @ApiModelProperty(value = "工作语言")
    private String jobLanguage;

    /**
     * 招聘对象
     *
     */
    private String identify;
    /**
     * 最低薪资
     */
    private Integer lowestSalary;

    /**
     * 最高薪资
     */
    private Integer highestSalary;
    /**
     * 企业id
     */
    private Long companyId;
    /**
     * 福利标签
     */
    private String welfareTags;

    /**
     * 职位描述
     */
    private String jobDescription;
    /**
     * 工作周期
     */
    private String workPeriod;
    /**
     * 实习周期
     */
    private String practicePeriod;
    /**
     * 招聘人数
     */
    private Integer recruitmentCount;
    /**
     * 定时发布状态(0:无,1:定时发布,2:定时暂停)
     */
    @ApiModelProperty(value = "定时发布状态(0:无,1:定时发布,2:定时暂停)")
    private Integer timingStatus;
    /**
     *定时时间
     */
    @ApiModelProperty(value = "定时时间(精确到小时)")
    private String fixedTime;
}
